Maurice Wu
Published on

如何写好 Prompt

随着人工智能技术的快速发展,尤其是大语言模型(LLM)的广泛应用,如何有效地与 AI 交互成为了一个重要的课题。写好 prompt(提示词)是确保 AI 能够准确理解任务并生成高质量结果的关键。本文将从指令清晰性、上下文完整性、输出格式、角色扮演等多个角度,探讨如何写好 prompt,并提供一些实用的策略和技巧。


一、什么是好的指令?

1. 清晰具体的指令

好的指令应当是清晰、具体的,而不是模糊或无边界的。模糊的指令会导致 AI 生成的结果偏离预期,甚至产生无用的输出。

不好的指令示例:

  • “写一篇关于 AI 的文章。”(过于宽泛,缺乏具体方向)

好的指令示例:

  • “请写一篇关于人工智能在医疗领域最新进展的文章,重点介绍 AI 在疾病诊断中的应用,字数约 1000 字。”(明确主题、范围和重点)

2. 避免模糊性

模糊的指令会让 AI 难以理解任务的核心需求。因此,在编写 prompt 时,应尽量提供具体的任务描述、目标和要求。


二、上下文的重要性

1. 什么是上下文?

上下文是指用户输入和 AI 输出之间的关联信息。AI 在生成内容时,会依赖上下文来理解任务背景和需求。

问题:AI 的输出是否算作上下文? 答案是肯定的。用户输入和 AI 输出共同构成了上下文,AI 会根据这些信息调整后续的生成内容。

2. 上下文窗口的限制

AI 的上下文窗口是有限的,就像从窗口看世界,每次只能看到一部分风景。每个模型的上下文窗口大小不同,输入内容越多,AI 处理的难度越大,生成质量可能会下降。

如何应对上下文窗口的限制?

  • 滑动窗口:通过摘要历史消息,将重要信息保留在上下文窗口中。
  • 精简输入:避免输入过多无关信息,确保核心任务信息清晰。

3. 如何让上下文更完整?

在 prompt 中提供尽可能多的背景信息,可以帮助 AI 更好地完成任务。

示例:

  • “请帮我实现一个将英文翻译成中文的 API。”(缺乏背景信息)
  • “请帮我实现一个将英文翻译成中文的 API,这是一个生成摘要的 API 代码供你参考。”(提供参考代码,补充上下文)

此外,可以通过让 AI 提问或生成内容的方式,让它自己补足上下文。例如:

  • “要写好这个用户故事,你还需要了解哪些信息?”
  • “请先从网络搜索有关‘人工智能在医疗领域的最新进展’的五个答案,然后整理成一篇报告。”

三、输出格式的控制

1. 支持的输出格式

AI 支持多种输出格式,包括:

  • 通用文本格式:Markdown、富文本
  • 数据表格:CSV
  • 流程图:Mermaid
  • 数学公式:LaTeX
  • 代码:Python、JavaScript 等
  • 结构化文本:JSON、XML、YAML

2. 如何让 AI 输出特定格式?

  • 样例(one-shot, few-shot):提供期望输出格式的例子。
  • 详细描述:明确说明输出格式的要求。
  • 伪代码:用伪代码说明输出格式,例如用 TypeScript 的 Type 定义返回的 JSON。
  • 特定 API 参数:例如 json_mode,强制 AI 以 JSON 格式输出。

示例:

  • “请以 Markdown 格式输出以下内容,包含标题、列表和代码块。”
  • “请生成一个 JSON 格式的 API 响应,包含以下字段:id, name, status。”

四、角色扮演

1. 设置角色的好处

让 AI 扮演特定角色,可以帮助它更好地理解任务并生成相关内容。角色扮演的好处包括:

  • 预测生成时更容易找到相关语料:早期模型尤其依赖角色相关的训练数据。
  • 明确任务范围:让 AI 更清楚自己的任务和目标。

示例:

  • “你是一名经验丰富的软件工程师,请帮我优化这段代码。”
  • “你是一位历史学家,请详细解释第二次世界大战的起因。”

五、写好 prompt 的关键策略

1. 策略一:撰写清晰的指令,提供详尽的背景信息

  • 明确任务步骤:AI 不会比你更聪明,它不一定知道最佳步骤。因此,明确说明完成任务的步骤非常重要。
  • 提供样例:通过提供正确或错误的样例(few-shot),帮助 AI 更好地理解任务。

2. 策略二:给模型思考的时间

  • 输出思考过程:对于复杂问题,不要让 AI 直接给出答案,而是先提供解决方案,再得出结论。
  • 让模型反思:让 AI 对自己生成的结果进行反思,指出其中的问题。

3. 策略三:将复杂任务拆分为简单任务

  • 化繁为简:将复杂任务拆分为多个简单任务,可以提高生成的成功率。
  • 意图分类:通过预先对指令分类,让 AI 判断用户的请求属于哪个分类,从而路由到最相关的子系统。

4. 策略四:接入外部工具和资料

  • 补足知识库:当 AI 的知识库不足时,可以通过接入外部工具和资料来补足。
  • 专业工具替代:不需要让语言模型做所有事情,专业的事情可以用专业的工具来完成。

六、总结

写好 prompt 的关键在于:

  1. 指令清晰具体:避免模糊,明确任务目标。
  2. 确保上下文完整:提供足够的背景信息,帮助 AI 理解任务。
  3. 控制输出格式:通过样例、伪代码等方式,确保输出格式符合预期。
  4. 让 AI 扮演角色:通过角色扮演,明确任务范围。

此外,还需要根据模型的能力和任务需求,选择合适的策略和技巧。通过清晰的指令、完整的上下文、合理的输出格式和角色扮演,可以显著提升 AI 生成结果的质量和准确性。


七、大模型的优势和劣势

1. 优势

  • 强大的生成能力:大模型能够生成高质量、多样化的内容。
  • 广泛的应用场景:适用于文本生成、翻译、代码编写等多种任务。

2. 劣势

  • 推理能力有限:对于复杂问题,AI 可能需要更多时间和算力。
  • 知识库不足:AI 的知识库可能不够全面,尤其是在处理最新信息时。

通过合理的 prompt 设计和策略,可以充分发挥大模型的优势,同时补足其劣势,从而获得更好的生成效果。